var express = require('express')
var router = express.Router()
const { formatResponse, analysisToken } = require('../utils/tool')

const { loginService, updateAdminService } = require('../service/adminService')
const { ValidationError } = require('../utils/errors.js')

// 登录接口
router.post('/login', async function(req, res, next) {
    // 验证码校验
    if(req.body.captcha.toLowerCase() != req.session.captcha.toLowerCase()) {
        throw new ValidationError('验证码错误')
    }
    // 假设上面的验证码已经通过
    const { token, data } = await loginService(req.body)
    // 将token携带到Header中
    if(token) {
        res.setHeader("authentication", token)
    }
    // 返回格式化后的响应数据
    res.send(formatResponse(200, '登录成功', data))
    
})

router.get("/whoami", async function (req, res, next) {
    // 1. 从客户端的请求拿到token
    let token = req.get('Authorization')
    // 2. 将token还原成明文
    token = analysisToken(token)
    // 3. 返回给客户端
    res.send(formatResponse(200, "请求成功", {
        "loginId": token.loginId,
        "name": token.name,
        "id": token.id
    }))
    // console.log('token', token)
})

// 修改管理员信息
router.put('/', async function (req, res, next) {
    const result = await updateAdminService(req.body)
    res.send(result)
})

module.exports = router
